using System;
using System.Collections.Generic;
using System.Text;
using GuavaData;

namespace GuavaData
{
    public class GEmpty : Object, Guava
    {
        string gname;
        GuavaData.Domain.Domain dom;
        LaunchType? lt;
        ControlType? ct;
        string gtext;
        System.Drawing.Point? glocation;
        System.Drawing.Size? gsize;
        string gdefault;
        string gtooltip;

        public GEmpty(string gname, GuavaData.Domain.Domain dom) : base()
        {
            this.gname = gname;
            this.dom = dom;
            this.lt = null;
            this.ct = null;
            this.gtext = null;
            this.glocation = null;
            this.gsize = null;
            this.gdefault = null;
            this.gtooltip = null;
        }

        #region Guava Members

        public LaunchType LType
        {
            get { return lt ?? LaunchType.NA; }
            set { this.lt = value; }
        }

        public ControlType CType
        {
            get { return ct ?? ControlType.Attribute; }
            set { this.ct = value; }
        }

        public string GText
        {
            get { return gtext; }
            set { this.gtext = value; }
        }

        public string GName
        {
            get
            {
                return gname;
            }
            set
            {
                gname = value;
            }
        }

        public System.Drawing.Point GLocation
        {
            get { return glocation ?? new System.Drawing.Point(); }
            set { this.glocation = value; }
        }

        public System.Drawing.Size GSize
        {
            get { return gsize ?? new System.Drawing.Size(); }
            set { this.gsize = value; }
        }

        public List<Guava> GComponents
        {
            get { return new List<Guava>(); }
        }

        public void GBind(string table, int i)
        {
            return;
        }

        public string GDefault
        {
            get { return gdefault; }
            set { this.gdefault = value; }
        }

        public string GToolTip
        {
            get { return gtooltip; }
            set { this.gtooltip = value; }
        }

        public GuavaData.Domain.Domain GDomain
        {
            get { return dom; }
            set { dom = value; }
        }

        public Guava this[string s]
        {
            get { return null; }
        }

        #endregion
    }
}
